package pimmodel;

import static org.junit.Assert.*;
import java.util.Date;
import java.util.ResourceBundle;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import pimcontr.FrameDescriptionHelper;

public class AufgabeTest {

	IAufgabe aufg1;
	IAufgabe aufg2;
	IAufgabe aufg3;
	IAufgabe aufg4;
	IAufgabe aufg5;

	Date date1;
	Date date2;
	final String language = "de";//args[0].trim();
    final String country = "DE";//args[1].trim(); 
   
	@SuppressWarnings("deprecation")
	@Before
	public void setUp() throws Exception {
		 
		aufg1 = new Aufgabe();
		aufg2 = new Aufgabe("Telefonat", true, "Freundin anrufen", false);
		aufg3 = new Aufgabe("Arzt", true, "Termin abmachen", true );
		aufg4 = new Aufgabe("Telefonat", false, "Werkstatt anrufen", true );
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testAufgabeStringDateStringBoolean() {
		ResourceBundle resourceBundle = null;
		try {
			aufg5 = new Aufgabe(null, true, "Inhalt ist egal", false  );
			fail("Name-null-Ausnahme sollte geworfen worden sein!");
		}
		catch (IllegalArgumentException e) {

		}


	}


	@Test
	public void testGetBeschreibung() {
		assertEquals(aufg2.getBeschreibung(), "Freundin anrufen");
		assertEquals(aufg3.getBeschreibung(), "Termin abmachen");
	}

	@Test
	public void testSetBeschreibung() {
		aufg1.setBeschreibung("Neuen Termin machen");
		assertEquals(aufg1.getBeschreibung(), "Neuen Termin machen");

	}

	@Test
	public void testIsPrio() {
		assertTrue(aufg3.isPrio());
		assertFalse(aufg2.isPrio());
	}

	@Test
	public void testSetPrio() {
		assertTrue(aufg3.isPrio());
		aufg3.setPrio(false);
		assertFalse(aufg3.isPrio());

		assertFalse(aufg2.isPrio());
		aufg2.setPrio(true);
		assertTrue(aufg2.isPrio());
	}

	@Test
	public void testEqualsObject() {
		assertFalse(aufg2.equals(aufg4));
		assertTrue(aufg2.equals(aufg2));
		assertFalse(aufg2.equals(aufg3));
	}

	@Test
	public void testCompareTo() {
		assertTrue(aufg3.compareTo(aufg2) < 0);
		assertTrue(aufg3.compareTo(aufg3) == 0);
		assertTrue(aufg4.compareTo(aufg3) > 0);
	}

}
